約 3,751,238 件
https://w.atwiki.jp/sampleisbest/pages/317.html
開発環境 メモ帳 実行環境 Microsoft Windows 8.1 (64bit) mml2smf4.js // OpenTextFile var ForReading = 1; // SaveOptionsEnum var adSaveCreateOverWrite = 2; var scale = {A 9, B 11, C 0, D 2, E 4, F 5, G 7};// 音階 // 外部変数 var timebase = 480; var deflen = 4;// default length var octave = 4; var st;// stream var sharp = ""; var flat = ""; var seq = new Array();// sequence var ch = 0;// channel var atick = 0;// absolute tick WScript.Quit(main()); //============================================================================== function main() { // 引数処理 var args = WScript.Arguments; if (args.length != 1) { WScript.Echo("usage cscript mml2smf2.js mmlfile"); return 1; } var path_in = args(0); // パス名処理 var fso = WScript.CreateObject("Scripting.FileSystemObject"); path_in = fso.GetAbsolutePathName(path_in); var dir = fso.GetParentFolderName(path_in); var fnm = fso.GetBaseName(path_in); var path_out = dir + "\\" + fnm + ".mid"; // 入力ファイルのオープン var fi = fso.OpenTextFile(path_in, ForReading);// ASCII while (! fi.AtEndOfStream) { var line = fi.ReadLine(); ParseLine for (var c = 0; c line.length; ) { var cmd = line.substr(c++, 1).toUpperCase(); var param = line.substr(c); switch (cmd) { case "\t" case " " case "|" break; case " " break ParseLine; case "*" // channel var p = param.match(/^(\d*)/); c += p[0].length; ch = parseInt(p[1]) - 1; atick = 0; break; case " " octave--; break; case " " octave++; break; case "@" // program change var p = param.match(/^(\d*)/); c += p[0].length; var value = parseInt(p[1]); SeqData(0, new Array(0xc0 | ch, value - 1)); break; case "A" case "B" case "C" case "D" case "E" case "F" case "G" // 音名 c += Note(cmd, param); break; case "K" // 調号 key signature var p = param.match(/^([#+\-])([A-G]+)/i); c += p[0].length; if (p[1] == "-") { flat = p[2].toUpperCase(); } else { sharp = p[2].toUpperCase(); } break; case "L" // 音価 var p = param.match(/^(\d*)/); c += p[0].length; deflen = parseInt(p[1]); break; case "O" var p = param.match(/^(\d*)/); c += p[0].length; octave = parseInt(p[1]); break; case "R" c += Rest(param); break; case "T" var p = param.match(/^(\d*)/); c += p[0].length; var tempo = parseInt(p[1]); var usec = 60000000 / tempo;// 4分音符のマイクロ秒数 SeqData(0, new Array(0xff, 0x51, 3, (usec 16) 0xff, (usec 8) 0xff, usec 0xff)); break; case "[" // 並列音名 c += ParallelNote(param); break; } } } fi.Close(); // トラック終了 SeqData(0, new Array(0xff, 0x2f, 0));// 最終チャネルの絶対tickに注意 // ソート seq.sort(SeqComp); // タイ処理 for (var s in seq) { var ds = seq[s]; for (var n = s - 1; 0 = n; n--) { var dn = seq[n]; if (dn == null) continue; if (dn.tick != ds.tick) break; if (dn[1] != ds[1]) continue;// note number if (dn[0] 0xf != ds[0] 0xf) continue;// channel if (dn[0] 0x80 ds[0] 0x90) {// note off/on delete seq[n]; delete seq[s]; } } } //----------------------------------------------------------------------------- // ストリームのオープン st = WScript.CreateObject("ADODB.Stream"); st.Charset = "iso-8859-1"; st.Open(); // ヘッダチャンク WriteBE(4, 0x4d546864);// MThd WriteBE(4, 6);// データ長 WriteBE(2, 0);// フォーマットタイプ WriteBE(2, 1);// トラック数 WriteBE(2, timebase);// タイムベース // トラックチャンク WriteBE(4, 0x4d54726b);// MTrk WriteBE(4, 0);// データ長(仮) var datalen = 0; var prevtick = 0; for (var s in seq) { var data = seq[s]; if (data == null) continue; var t = data.tick - prevtick;// delta time prevtick = data.tick; // 可変長tick var v = ((t 0xfe00000) 3)|((t 0x1fc000) 2)|((t 0x3f80) 1)|(t 0x7f)|0x80808000; for (var n = 3; 0 = n; n--) { var b = (v (8 * n)) 0xff; if (b != 0x80) { st.WriteText(String.fromCharCode(b)); datalen++; } } for (var d = 0; d data.length; d++) { st.WriteText(String.fromCharCode(data[d])); datalen++; } } st.Position -= datalen + 4; WriteBE(4, datalen);// データ長 // ストリームをファイルに保存 st.SaveToFile(path_out, adSaveCreateOverWrite); st.Close(); // 再生 var WshShell = WScript.CreateObject("WScript.Shell"); WshShell.Run(path_out); return 0; } function WriteBE(count, value) { for (var n = count - 1; 0 = n; n--) { st.WriteText(String.fromCharCode((value (8*n)) 0xff)); } } function SeqData(tick, data) { data.tick = atick + tick; seq.push(data); } function SeqComp(a, b) { return a.tick - b.tick; } // 休符処理 function Rest(param) { var p = param.match(/^(\d*)(\.*)/); var value = (p[1] == "") ? deflen parseInt(p[1]); var dot = p[2].length; var tick = timebase * 4 / value; tick += tick * ((1 dot) - 1) / (1 dot); atick += tick; return p[0].length; } // 音符処理 function Note(cmd, param) { var p = param.match(/^(\/?)([#+]*)(\-*)(\d*)(\.*)( ?)/); var value = (p[4] == "") ? deflen parseInt(p[4]); var dot = p[5].length; var tick = timebase * 4 / value; tick += tick * ((1 dot) - 1) / (1 dot); var gate = (p[6]) ? tick tick * 7 / 8; var acci;// 臨時記号 accidental if (p[1]) { acci = 0; } else { acci = p[2].length - p[3].length; if (acci == 0) { if (sharp.indexOf(cmd) != -1) acci = 1; if (flat.indexOf(cmd) != -1) acci = -1; } } var num = (octave + 1) * 12 + scale[cmd] + acci;// note number SeqData( 0, new Array(0x90 | ch, num, 0x70)); SeqData(gate, new Array(0x80 | ch, num, 0x00)); atick += tick; return p[0].length; } // 並列音符処理 function ParallelNote(param) { var p = param.match(/^([^]]*)](\d*)(\.*)( ?)/); var value = (p[2] == "") ? deflen parseInt(p[2]); var dot = p[3].length; var tick = timebase * 4 / value; tick += tick * ((1 dot) - 1) / (1 dot); var gate = (p[4]) ? tick tick * 7 / 8; var note = p[1].match(/[A-G][^A-G]*/gi);// 音名配列 for (var i = 0; i note.length; i++) { var n = note[i].match(/(.)(\/?)([#+]*)(\-*)(\d?)/); var name = n[1].toUpperCase(); var acci;// 臨時記号 accidental if (n[2]) { acci = 0; } else { acci = n[3].length - n[4].length; if (acci == 0) { if (sharp.indexOf(name) != -1) acci = 1; if (flat.indexOf(name) != -1) acci = -1; } } var o = (n[5] == "") ? octave parseInt(n[5]); var num = (o + 1) * 12 + scale[name] + acci;// note number SeqData( 0, new Array(0x90 | ch, num, 0x70)); SeqData(gate, new Array(0x80 | ch, num, 0x00)); } atick += tick; return p[0].length; } ivi.txt ivi.txt t60 *1 右手 [egc5][dgb][egc5]r *2 左手 c g cr
https://w.atwiki.jp/srwvdb/pages/2.html
メニュー トップページ データベース カード図鑑属性別火 コスト別コスト1 スキル一覧 シナリオ 第1話 A(男主人公)「遥かなる旅路」 第2話「火星の海賊」 ここを編集
https://w.atwiki.jp/sampleisbest/pages/302.html
開発環境 Microsoft Visual C++ 2010 Express (SP1) 実行環境 Microsoft Windows XP Home Edition (SP3) プロジェクトの種類 Win32 コンソール アプリケーション プロジェクト名 mml2smf1 アプリケーションの種類 コンソール アプリケーション 追加のオプション 空のプロジェクト 文字セット マルチバイト 参考 こんにちは世界 mml2smf1.cpp // マルチバイト文字セット #include stdio.h #include Windows.h // 関数プロトタイプ宣言 void WriteBE(int len, DWORD val); void WriteData(DWORD t, BYTE cmd, BYTE d1, BYTE d2); // 外部変数 FILE* pFile; int datalen;// データ長 //============================================================================== int main() { if (fopen_s( pFile, "sample.mid", "wb") != 0) { fprintf(stderr, "fopen error\n"); return 1; } // ヘッダチャンク fwrite("MThd", 1, 4, pFile); WriteBE(4, 6);// データ長 WriteBE(2, 0);// フォーマットタイプ WriteBE(2, 1);// トラック数 WriteBE(2, 480);// タイムベース // トラックチャンク fwrite("MTrk", 1, 4, pFile); datalen = 0; WriteBE(4, datalen);// データ長(仮) // データセクション WriteData(0, 0x90, 60, 0x70); WriteData(480, 0x80, 60, 0); WriteData(0, 0x90, 64, 0x70); WriteData(480, 0x80, 64, 0); WriteData(0, 0x90, 67, 0x70); WriteData(480, 0x80, 67, 0); // トラック終了 WriteData(0, 0xff, 0x2f, 0x00); fseek(pFile, -4 - datalen, SEEK_CUR); WriteBE(4, datalen);// データ長 fclose(pFile); return 0; } void WriteBE(int len, DWORD val) { BYTE* p = (BYTE*) val + len; for (int n = 0; n len; n++) { fwrite(--p, 1, 1, pFile); } } void WriteData(DWORD t, BYTE cmd, BYTE d1, BYTE d2) { // 可変長tick DWORD v = ((t 0xfe00000) 3)|((t 0x1fc000) 2)|((t 0x3f80) 1)|(t 0x7f)|0x80808000; BYTE* p = (BYTE*) v + 4; for (int n = 0; n 4; n++) { if (*--p != 0x80) { fwrite(p, 1, 1, pFile); datalen++; } } fwrite( cmd, 1, 1, pFile); fwrite( d1, 1, 1, pFile); fwrite( d2, 1, 1, pFile); datalen += 3; } 出力 ADDRESS 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 0123456789ABCDEF ------------------------------------------------------------------------------ 00000000 4D 54 68 64 00 00 00 06 00 00 00 01 01 E0 4D 54 MThd..........MT 00000010 72 6B 00 00 00 1F 00 90 3C 70 83 60 80 3C 00 00 rk...... p.`. .. 00000020 90 40 70 83 60 80 40 00 00 90 43 70 83 60 80 43 .@p.`.@...Cp.`.C 00000030 00 00 FF 2F 00 .../.
https://w.atwiki.jp/sampleisbest/pages/316.html
開発環境 メモ帳 実行環境 Microsoft Windows 8.1 (64bit) mml2smf3.js // OpenTextFile var ForReading = 1; // SaveOptionsEnum var adSaveCreateOverWrite = 2; var scale = {A 9, B 11, C 0, D 2, E 4, F 5, G 7};// 音階 // 外部変数 var timebase = 480; var deflen = 4; var octave = 4; var rest = 0; var st;// ストリーム var sharp = ""; var flat = ""; var trk = new Array(); var trkno = 0; var seqno = 0; var atick = 0;// absolute tick WScript.Quit(main()); //============================================================================== function main() { // 引数処理 var args = WScript.Arguments; if (args.length != 1) { WScript.Echo("usage cscript mml2smf2.js mmlfile"); return 1; } var path_in = args(0); // パス名処理 var fso = WScript.CreateObject("Scripting.FileSystemObject"); path_in = fso.GetAbsolutePathName(path_in); var dir = fso.GetParentFolderName(path_in); var fnm = fso.GetBaseName(path_in); var path_out = dir + "\\" + fnm + ".mid"; // 入力ファイルのオープン var fi = fso.OpenTextFile(path_in, ForReading);// ASCII trk[trkno] = new Array(); while (! fi.AtEndOfStream) { var line = fi.ReadLine(); ParseLine for (var c = 0; c line.length; ) { var cmd = line.substr(c++, 1).toUpperCase(); var param = line.substr(c); switch (cmd) { case "\t" case " " case "|" break; case "%" SeqData(rest, new Array(0xff, 0x2f, 0)); rest = 0; trk[++trkno] = new Array(); seqno = 0; atick = 0; break; case " " break ParseLine; case " " octave--; break; case " " octave++; break; case "A" case "B" case "C" case "D" case "E" case "F" case "G" c += Note(cmd, param); break; case "K" // 調号 key signature var p = param.match(/^([#+\-])([A-G]+)/i); c += p[0].length; if (p[1] == "-") { flat = p[2].toUpperCase(); } else { sharp = p[2].toUpperCase(); } break; case "L" var p = param.match(/^(\d*)/); c += p[0].length; deflen = parseInt(p[1]); break; case "O" var p = param.match(/^(\d*)/); c += p[0].length; octave = parseInt(p[1]); break; case "R" c += Rest(param); break; case "T" var p = param.match(/^(\d*)/); c += p[0].length; var tempo = parseInt(p[1]); var usec = 60000000 / tempo;// 4分音符のマイクロ秒数 SeqData(rest, new Array(0xff, 0x51, 3, (usec 16) 0xff, (usec 8) 0xff, usec 0xff)); rest = 0; break; } } } fi.Close(); // トラック終了 SeqData(rest, new Array(0xff, 0x2f, 0)); //----------------------------------------------------------------------------- // ストリームのオープン st = WScript.CreateObject("ADODB.Stream"); st.Charset = "iso-8859-1"; st.Open(); // ヘッダチャンク WriteBE(4, 0x4d546864);// MThd WriteBE(4, 6);// データ長 WriteBE(2, 1);// フォーマットタイプ WriteBE(2, trkno + 1);// トラック数 WriteBE(2, timebase);// タイムベース for (var tr in trk) { // トラックチャンク WriteBE(4, 0x4d54726b);// MTrk WriteBE(4, 0);// データ長(仮) var datalen = 0; var prevtick = 0; seq = trk[tr]; for (var s in seq) { var data = seq[s]; var t = data.tick - prevtick; prevtick = data.tick; // 可変長tick var v = ((t 0xfe00000) 3)|((t 0x1fc000) 2)|((t 0x3f80) 1)|(t 0x7f)|0x80808000; for (var n = 3; 0 = n; n--) { var b = (v (8 * n)) 0xff; if (b != 0x80) { st.WriteText(String.fromCharCode(b)); datalen++; } } for (var d = 0; d data.length; d++) { st.WriteText(String.fromCharCode(data[d])); datalen++; } } var pos = st.Position; st.Position = pos - datalen - 4; WriteBE(4, datalen);// データ長 st.Position = pos; } // ストリームをファイルに保存 st.SaveToFile(path_out, adSaveCreateOverWrite); st.Close(); // 再生 var WshShell = WScript.CreateObject("WScript.Shell"); WshShell.Run(path_out); return 0; } function WriteBE(count, value) { for (var n = count - 1; 0 = n; n--) { st.WriteText(String.fromCharCode( (value (8 * n)) 0xff )); } } function SeqData(tick, data) { data.tick = (atick += tick); trk[trkno][seqno++] = data; } // 音符処理 function Note(cmd, param) { var p = param.match(/^(\/?)([#+]*)(\-*)(\d*)(\.*)( ?)/); // 臨時記号 accidental var acci; if (p[1]) { acci = 0; } else { acci = p[2].length - p[3].length; if (acci == 0) { if (sharp.indexOf(cmd) != -1) acci = 1; if (flat.indexOf(cmd) != -1) acci = -1; } } var note = (octave + 1) * 12 + scale[cmd] + acci; var value = (p[4] == "") ? deflen parseInt(p[4]); var dot = p[5].length; var tick = timebase * 4 / value; tick += tick * ((1 dot) - 1) / (1 dot); var gate = (p[6]) ? tick tick * 7 / 8; // タイ処理 var seq = trk[trkno]; if (rest == 0 0 seqno seq[seqno-1][0] == 0x80 seq[seqno-1][1] == note) { seq[seqno-1].tick = (atick += gate); } else { SeqData(rest, new Array(0x90 | trkno, note, 0x70)); SeqData(gate, new Array(0x80 | trkno, note, 0x00)); } rest = tick - gate; return p[0].length; } // 休符処理 function Rest(param) { var p = param.match(/^(\d*)(\.*)/); var value = (p[1] == "") ? deflen parseInt(p[1]); var dot = p[2].length; var tick = timebase * 4 / value; tick += tick * ((1 dot) - 1) / (1 dot); rest += tick; return p[0].length; } もろびとこぞりて.txt t110 k+fc o5dc8. b16 a.g8 fe d.a8 b.b8 o5c.c8 t55d.t110d8 d8c8 b8a8 a8.g16f8 d8 d8c8 b8a8 a8.g16f8f8 f8f8f8f16g16 a.g16f16 e8e8e8e16f16 g.f16e16 d8 d b8 a8.g16f8g8 fe d2 % o4fa8.g16 f.e8 dc d.a8 g.g8 e.e8 f.f8 f8a8g8f8 f8.e16d8f8 f8a8g8f8 f8.e16d8d8 d8d8d8d16e16 f.e16d16 c8c8c8c16d16 e.d16c16 d8 fg8 f8.e16d8e8 dc d2
https://w.atwiki.jp/cthulhuartonline/pages/328.html
LV10・神秘に惹かれて【聡明:100 頑健:100 魅了:100】 『MP+1d50、転生するたびに更に+1d100 《常》【遥かなる旅路E】:自身が死亡した際、希望すれば20%(固定)で転生することが出来る。この能力をつかえるのは1セッション当たり1回までである。 《常》【詠唱魔術E】:付属されている詠唱を行った場合、威力が+50%される 破道【一・衝】:自身の現在MPdSANのダメージ同じ部屋、同じ位置にいる敵単体に与える。突き飛ばされたような感覚を覚える。『破道の一、衝(しょう)』 破道【二・閃】:自身の現在MPdSANのダメージ同じ部屋、同じ位置敵全体に与える。壁が迫り、そのまま吹き飛ばされるような感覚を覚える。『破道の二、閃(せん)』 破道【三・包】:自身の現在MPdSANのダメージ同じ部屋、大気圏までの敵全体に与える。淡い光が部屋を包み、体中を鈍器で一斉に殴られるような感覚を覚える『淡き光は御仏の掌に。破道の三、(包)』 縛道【一・塞】:自身のPOW分のダメージを与えた後、相手単体に50%固定で2Tの技能封印がかかる。『縛道の一、塞(さい)』 縛道【二・枷】:自身のPOW分のダメージを与えた後、相手単体の身体に大気中の魔力が巻きつく。30%固定で1Rの宝具封印が付与される。『縛道の二、枷(じょう)』 言霊【止】:主行動を三つ分消費する。これは連続魔などに対応しない。敵味方全員の能力値変動を次の自身の主行動三つ分まで停止させる。『我此処に伝える。止まれ、止まれ、止まれ。我此処に命ず。流動よ止まれ。』 言霊【礼】:主行動を三つ分消費する。これは連続魔などに対応しない。自身に対して効果を与えたもの全てに、自身が与えられた効果をそのまま与えてくれた者に次の自身の主行動三つ分まで付与する。『我此処に跪き伝う。感謝、感謝、感謝。我此処に響かす。有難う』 』 LV20・【聡明:300 頑健:300 魅了:300】 『MP+1d50、転生するたびに更に+1d110 《常》【遥かなる旅路D】:自身が死亡した際、希望すれば25%(固定)で転生することが出来る。この能力をつかえるのは1セッション当たり1回までである。 《常》【詠唱魔術D】:付属されている詠唱を行った場合、威力が+60%される 破道【四・白雷】 自身の現在MPd(現在SANd3)の雷・光属性ダメージを自身のいる1列の中で一番遠い者に与える。この魔法は絶対必中が付与されている 破道【五・蒼波】 自身の現在MPd(最大SANd2)の水・風属性ダメージを自身から前方にいる敵すべてに与える。この魔法はどの高さにいても当てることが出来る 破道【六・紫煙】 自身の最大MPd(最大SANd3)の毒・風属性の追加ダメージを味方単体の近接攻撃に付与する。与えたダメージ分のスリップダメージを発生させる(毒) 破道【七・朱爪】 自身の現在SAN/20分、味方単体の近接攻撃の回数を増やし、その攻撃に特性無視の炎属性を付与する。 破道【八・翠蓮】 自身の(現在SAN^2)d (最大SAN^2)の無・氷属性の特性無視の固定ダメージを与えた後3回分、このスキルを受けた敵は炎属性を付与された攻撃の被ダメージが+50%される 縛道【三・滑脚】 敵または味方単体の脚を滑らせ、敵のSIZd敵のSIZのダメージを与えた後、封印無効の確率を-30%する(祟りの対象外) 縛道【四・這縄】 敵または味方単体に縄を這わせ、DEXを最遅にし、行動回数-1(0にはならない)するが対象の攻撃回数に+2する 縛道【五・耳留】 敵または味方単体に対する呪文を無効化するが、このスキルをかけられた者は2R後まで呪文を使えなくなる 縛道【六・口縫】 敵および味方単体の呪文威力を0にするが、このスキルをかけられたものはその次のRに放たれる魔法は発射数+1する 』 LV40・【聡明:600 頑健:600 魅了:600】 『MP+1d100、転生するたびに更に+1d120 《常》【遥かなる旅路C】:自身が死亡した際、希望すれば30%(固定)で転生することが出来る。この能力をつかえるのは1セッション当たり1回までである。 《常》【詠唱魔術C】:付属されている詠唱を行った場合、威力が+70%される 破道【九・泡砲】 支援砲撃を放つ砲を虚空から出現させる。99%の確率で成功したら部屋を最初の状態に戻す泡を放ち、100Fしたらその部屋を消滅させ、【特異点】とする 破道【十一・綴雷電】 一人まで持てる糸を発現させ、そこに任意の呪文または術を流し込むことが出来る。その糸を持っている者は伝ってきた呪文を一度だけ重複させることが出来る(ただし、一度に重複させられるのは一つまでである) 破道【十二・伏火】 任意の10箇所に霊気の爆弾をしかけ、そのマスにいたものは設置高度+2まで爆風が当たる。効果は最高高度を-2することである。この術は味方にもあたる 破道【十五・颪】 自身が地面にいて、+2マス奥の敵が地面以上の場所にいる場合のみ使用可能。対象のHPを高度係数*5%、永久的に喪失させる(同じ敵には一度までしかあてることはできない) 破道【十七・風負】 自身の部屋のオブジェクトを破壊することが出来る。イモータルの場合、自身が+20以上ならば10%固定、+50以上ならば30%固定、+100以上なら50%固定で破壊可能 破道【十九・陽炎】 これまで自身がいた部屋が7個以上の時のみ使用可能。通ってきた部屋のうち一つを【陽炎の間】状態に6Tすることが出来る 破道【二十一・太刀影】 自身が刀を使用しているときのみ発動可能。自身の刀の攻撃回数に+(自身の素DEX/100)することが出来る。この効果は発動してから2R継続する 破道【二十三・小夜時雨】 天候が【夜】の時のみ使用可能。【夜】のマスに霊気に満ちた雨を3R降らせ、秘術に関するスキル威力を+20%する。また、部屋は【時雨】状態に同期間なる 破道【二十五・掉尾一振】:ダンジョンに入ってから時間がたっているほど、ボスの体力が低いときほど効果が増す。対象を一人だけ選択し、そのものの攻撃威力を以下の表(※)分+する --(※)-- 1R:-50% ボス体力100%:-90% 2R:-30% ボス体力90%:-50% 3R:-10% ボス体力80%:-30% 4R:+10% ボス体力70%:-10% 5R:+30% ボス体力60%:+10% 6R:+50% ボス体力50%:+30% 7R:+100% ボス体力40%:+50% 8R:+150% ボス体力30%:+100% 9R:+200% ボス体力20%:+150% 10R:+300% ボス体力10%:+200% LV50・【聡明 800 頑健 800 魅了 800】 『MP+1d200、転生するたびに更に+1d130 《常》【遥かなる旅路B】:自身が死亡した際、希望すれば35%(固定)で転生することが出来る。この能力をつかえるのは1セッション当たり1回までである。 《常》【詠唱魔術B】:付属されている詠唱を行った場合、威力が+80%される LV70・【聡明 1000 頑健 1000 魅了 1000】 『MP+1d300、転生するたびに更に+1d140 《常》【遥かなる旅路A】:自身が死亡した際、希望すれば40%(固定)で転生することが出来る。この能力をつかえるのは1セッション当たり1回までである。 《常》【詠唱魔術A】:付属されている詠唱を行った場合、威力が+90%される LV90・【聡明 1300 頑健 1300 魅了 1300】 『MP+1d500、転生するたびに更に+1d150 《常》【遥かなる旅路S】:自身が死亡した際、希望すれば45%(固定)で転生することが出来る。この能力をつかえるのは1セッション当たり1回までである。 《常》【詠唱魔術S】:付属されている詠唱を行った場合、威力が+100%される LV120・【聡明 1700 頑健 1700 魅了 1700】 『MP+1d1000、転生するたびに更に+1d200 《常》【遥かなる旅路SS】:自身が死亡した際、希望すれば50%(固定)で転生することが出来る。この能力をつかえるのは1セッション当たり1回までである。 《常》【詠唱魔術SS】:付属されている詠唱を行った場合、威力が+200%される 破道【九十・黒棺】:[滲み出す混濁の紋章 不遜なる狂気の器 湧きあがり・否定し 痺れ・瞬き 眠りを妨げる 爬行する鉄の王女 絶えず自壊する泥の人形 結合せよ 反発せよ 地に満ち己の無力を知れ]、フロア全域に漆黒の壁を出現させ、フロア全域の自身以外の敵味方全員の最大HPMPSANを-99%する。この効果は回避スキル・技能・バフを無視するが1セッション当たり一回まで 破道【九十一・千手皎天汰炮】:[千手の涯 届かざる闇の御手 映らざる天の射手 光を落とす道 火種を煽る風 集いて惑うな我が指を見よ 光弾・八身・九条・天経・疾宝・大輪・灰色の砲塔 弓引く彼方 皎皎として消ゆ]、自身の隣接するものに自身の最大SANd最大SANの光・爆発属性のダメージを与える。これに対して軽減効果は一切を無視する。転生を重ねるほど威力が上昇する。計算式は基礎威力*(+の値)^2
https://w.atwiki.jp/sakots/pages/25.html
【初音ミク】 遥かなる想い (マンPオリジナル) 【ネギソング】 曲名:遥かなる想い 作詞:サ骨 作曲:サ骨 編曲:サ骨 唄:初音ミク 歌詞:
https://w.atwiki.jp/sampleisbest/pages/303.html
開発環境 Microsoft Visual C++ 2013 実行環境 Microsoft Windows 8.1 (64bit) プロジェクトの種類 Win32 コンソール アプリケーション プロジェクト名 mml2smf アプリケーションの種類 コンソール アプリケーション 追加のオプション 空のプロジェクト mml2smf.cpp // マルチバイト文字セット #pragma comment(lib, "winmm") #include ctype.h #include stdio.h #include stdlib.h #include string.h #include Windows.h // 関数プロトタイプ宣言 int Note(const char* p); int Rest(const char* p); int GetValue(const char* p, int* value); void WriteBE(int len, DWORD val); void WriteData(DWORD t, BYTE cmd, BYTE d1, BYTE d2); // 外部変数 FILE* pfo; int datalen;// データ長 int timebase = 480; int deflen = 4;// デフォルト長 int octave = 4; int tempo = 120; int rest = 0;// 休符tick //============================================================================== int main(int argc, char *argv[]) { if (argc != 2) { fprintf(stderr, "usage mml2smf mmlfile\n"); return 1; } // 入力ファイル char path_in[_MAX_PATH]; strcpy_s(path_in, argv[1]); FILE* pfi; if (fopen_s( pfi, path_in, "rt") != 0) { fprintf(stderr, "error %s\n", path_in); return 1; } // 出力ファイル char drv[_MAX_DRIVE]; char dir[_MAX_DIR]; char fnm[_MAX_FNAME]; char ext[_MAX_EXT]; char path_out[_MAX_PATH]; _splitpath_s(path_in, drv, dir, fnm, ext); _makepath_s(path_out, drv, dir, fnm, "mid"); if (fopen_s( pfo, path_out, "wb") != 0) { fprintf(stderr, "error %s\n", path_out); return 1; } // ヘッダチャンク fwrite("MThd", 1, 4, pfo); WriteBE(4, 6);// データ長 WriteBE(2, 0);// フォーマットタイプ WriteBE(2, 1);// トラック数 WriteBE(2, timebase);// タイムベース // トラックチャンク fwrite("MTrk", 1, 4, pfo); WriteBE(4, 0);// データ長(仮) datalen = 0; // 読み込みループ char line[256]; int row = 0; while (fgets(line, _countof(line), pfi) != NULL) { row++; int len = strlen(line); if (0 len line[len - 1] == \n ) line[len - 1] = \0 ;// 改行文字を削除 char* p = strchr(line, \ ); if (p != NULL) *p = \0 ;// コメントアウトを削除 for (int c = 0; line[c]; ) { switch (line[c++]) { case \t case // スルー break; case octave--; break; case octave++; break; case a case b case c case d case e case f case g c += Note(line + --c); break; case l c += GetValue(line + c, deflen); break; case o c += GetValue(line + c, octave); break; case r c += Rest(line + c); break; case t c += GetValue(line + c, tempo); WriteData(0, 0xff, 0x51, 3); WriteBE(3, 60000000 / tempo);// 4分音符のマイクロ秒数 break; default fprintf(stderr, "%s\nerror row=%d col=%d\n", line, row, c); return 1; } } } // トラック終了 WriteData(0, 0xff, 0x2f, 0x00); fseek(pfo, -4 - datalen, SEEK_CUR); WriteBE(4, datalen);// データ長 fclose(pfo); fclose(pfi); // 出力ファイルの再生 MCI_OPEN_PARMS mop; mop.lpstrElementName = path_out; MCIERROR e; e = mciSendCommand(NULL, MCI_OPEN, MCI_OPEN_ELEMENT, (DWORD_PTR) mop); if (e != 0) { char buf[256]; mciGetErrorString(e, buf, _countof(buf)); fprintf(stderr, "%s\n", buf); return 1; } mciSendCommand(mop.wDeviceID, MCI_PLAY, 0, NULL); printf("Enterキーで終了"); getchar(); mciSendCommand(mop.wDeviceID, MCI_STOP, 0, NULL); mciSendCommand(mop.wDeviceID, MCI_CLOSE, 0, NULL); return 0; } // 音符 int Note(const char* p) { const int scale[] = {9, 11, 0, 2, 4, 5, 7}; int c = 0; // 音程 c++; // 臨時記号 accidental int acci = 0; switch (p[c]) { case + case # acci++; c++; break; case - acci--; c++; break; } int note = (octave + 1) * 12 + scale[*p - a ] + acci; // 音符の長さ int value; c += GetValue(p + c, value); if (value == 0) value = deflen; // 付点 int dot = 0; for ( ; p[c] == . ; c++) dot++; int tick = timebase * 4 / value; tick += tick * ((1 dot) - 1) / (1 dot); WriteData(rest, 0x90, note, 0x70); WriteData(tick, 0x80, note, 0x00); rest = 0; printf("%c a=%d v=%d d=%d c=%d t=%d n=%d\n", *p, acci, value, dot, c, tick, note); return c; } // 休符 int Rest(const char* p) { // 休符の長さ int value; int c = GetValue(p, value); if (value == 0) value = deflen; // 付点 int dot = 0; for ( ; p[c] == . ; c++) dot++; int tick = timebase * 4 / value; tick += tick * ((1 dot) - 1) / (1 dot); rest += tick; return c; } // 値の取得 int GetValue(const char* p, int* value) { int c = 0; *value = 0; for ( ; isdigit(p[c]); c++) { *value = *value * 10 + (p[c] - 0 ); } return c; } void WriteBE(int len, DWORD val) { BYTE* p = (BYTE*) val + len; for (int n = 0; n len; n++) { fwrite(--p, 1, 1, pfo); } datalen += len; } void WriteData(DWORD t, BYTE cmd, BYTE d1, BYTE d2) { // 可変長tick DWORD v = ((t 0xfe00000) 3)|((t 0x1fc000) 2)|((t 0x3f80) 1)|(t 0x7f)|0x80808000; BYTE* p = (BYTE*) v + 4; for (int n = 0; n 4; n++) { if (*--p != 0x80) { fwrite(p, 1, 1, pfo); datalen++; } } fwrite( cmd, 1, 1, pfo); fwrite( d1, 1, 1, pfo); fwrite( d2, 1, 1, pfo); datalen += 3; } アニーローリー.txt アニーローリー スコットランド民謡 t150 e8.d16 c.c8 c. b8 ba2a g.e8ed8c8 d2. e8.d16 c.c8 c. b8 ba2a g.e8d.c8 c2r g c.c8d.d8 e2. g c.c8d.d8 e2. o5 e8.d16 c. b8a c8 a8 ge2e8.d16 c8 c e8d.c8 c2.
https://w.atwiki.jp/warandpeace/pages/152.html
遥かなる戦場 Campo di battaglia lontano 遥かなる戦場 [DVD]
https://w.atwiki.jp/japan_dorama/pages/1402.html
amazonで探す @楽天で #遥かなる絆 を探す! 土21NHK 2009.04.18~2009.05.23 7.7% 公式HP wikipedia 前 ジャッジⅡ~島の裁判官奮鬪記 次 風に舞いあがるビニールシート Hulu NETFLIX dTV PrimeVide U-NEXT TVer Paravi GYAO youtube検索 / Pandora検索 / dailymotion検索 / bilibili検索 1 はじまりの河 2009/04/18 8.6% 2 日本孤児 2009/04/25 7.6% 3 祖国へ 2009/05/02 6.2% 4 牡丹江の別れ 2009/05/09 7.7% 5 果てしない旅 2009/05/16 7.8% 6 ふたたびの河 2009/05/23 8.4%
https://w.atwiki.jp/dq_dictionary_2han/pages/7648.html
オープニング 【序曲】 タイジュの国 【テリーの世界】 【競技の館】 【楽しい出逢い】 旅の扉の世界 【果てしなき旅】 【変な世界】 【広野を行く】 【遥かなる旅路】 【冒険の旅】 【勇者の故郷】 【地平の彼方へ】 【さすらいのテーマ】 戦闘 【モンスターの戦い】 【ミレーユとの戦い】 【君は勝てるか?】 エンディング 【星降りの夜】